/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.eps.tesoreria.Entity;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Diana
 */
@Entity
@Table(name = "detalleAprobacionPlanilla")
@org.hibernate.annotations.Proxy(lazy=false)
@NamedQueries({
    @NamedQuery(name = "DetalleAprobacionPlanilla.findAll", query = "SELECT d FROM DetalleAprobacionPlanilla d"),
    @NamedQuery(name = "DetalleAprobacionPlanilla.findByCodProceso", query = "SELECT d FROM DetalleAprobacionPlanilla d WHERE d.detalleAprobacionPlanillaPK.codProceso = :codProceso"),
    @NamedQuery(name = "DetalleAprobacionPlanilla.findByCodPlanilla", query = "SELECT d FROM DetalleAprobacionPlanilla d WHERE d.detalleAprobacionPlanillaPK.codPlanilla = :codPlanilla"),
    @NamedQuery(name = "DetalleAprobacionPlanilla.findByIdUsuario", query = "SELECT d FROM DetalleAprobacionPlanilla d WHERE d.detalleAprobacionPlanillaPK.idUsuario = :idUsuario"),
    @NamedQuery(name = "DetalleAprobacionPlanilla.findByNivel", query = "SELECT d FROM DetalleAprobacionPlanilla d WHERE d.nivel = :nivel"),
    @NamedQuery(name = "DetalleAprobacionPlanilla.findByFlagAprobacion", query = "SELECT d FROM DetalleAprobacionPlanilla d WHERE d.flagAprobacion = :flagAprobacion"),
    @NamedQuery(name = "DetalleAprobacionPlanilla.findByFechaOperacion", query = "SELECT d FROM DetalleAprobacionPlanilla d WHERE d.fechaOperacion = :fechaOperacion"),
    @NamedQuery(name = "DetalleAprobacionPlanilla.findByIpAcceso", query = "SELECT d FROM DetalleAprobacionPlanilla d WHERE d.ipAcceso = :ipAcceso"),
    @NamedQuery(name = "DetalleAprobacionPlanilla.findByMacAcceso", query = "SELECT d FROM DetalleAprobacionPlanilla d WHERE d.macAcceso = :macAcceso"),
    @NamedQuery(name = "DetalleAprobacionPlanilla.findByEstado", query = "SELECT d FROM DetalleAprobacionPlanilla d WHERE d.estado = :estado"),
    @NamedQuery(name = "DetalleAprobacionPlanilla.findByCoddetalle", query = "SELECT d FROM DetalleAprobacionPlanilla d WHERE d.detalleAprobacionPlanillaPK.coddetalle = :coddetalle")})
public class DetalleAprobacionPlanilla implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected DetalleAprobacionPlanillaPK detalleAprobacionPlanillaPK;
    @Column(name = "nivel")
    private Integer nivel;
    @Column(name = "flagAprobacion")
    private Integer flagAprobacion;
    @Lob
    @Column(name = "observacion")
    private String observacion;
    @Column(name = "fecha_operacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaOperacion;
    @Column(name = "ip_acceso")
    private String ipAcceso;
    @Column(name = "mac_acceso")
    private String macAcceso;
    @Column(name = "estado")
    private Integer estado;
    @JoinColumns({
        @JoinColumn(name = "codProceso", referencedColumnName = "codProceso", insertable = false, updatable = false),
        @JoinColumn(name = "id_usuario", referencedColumnName = "id_usuario", insertable = false, updatable = false)})
    @ManyToOne
    private DetalleProcesoAprobacion detalleProcesoAprobacion;

    public DetalleAprobacionPlanilla() {
    }

    public DetalleAprobacionPlanilla(DetalleAprobacionPlanillaPK detalleAprobacionPlanillaPK) {
        this.detalleAprobacionPlanillaPK = detalleAprobacionPlanillaPK;
    }

    public DetalleAprobacionPlanilla(String codProceso, String codPlanilla, String idUsuario, int coddetalle) {
        this.detalleAprobacionPlanillaPK = new DetalleAprobacionPlanillaPK(codProceso, codPlanilla, idUsuario, coddetalle);
    }

    public DetalleAprobacionPlanillaPK getDetalleAprobacionPlanillaPK() {
        return detalleAprobacionPlanillaPK;
    }

    public void setDetalleAprobacionPlanillaPK(DetalleAprobacionPlanillaPK detalleAprobacionPlanillaPK) {
        this.detalleAprobacionPlanillaPK = detalleAprobacionPlanillaPK;
    }

    public Integer getNivel() {
        return nivel;
    }

    public void setNivel(Integer nivel) {
        this.nivel = nivel;
    }

    public Integer getFlagAprobacion() {
        return flagAprobacion;
    }

    public void setFlagAprobacion(Integer flagAprobacion) {
        this.flagAprobacion = flagAprobacion;
    }

    public String getObservacion() {
        return observacion;
    }

    public void setObservacion(String observacion) {
        this.observacion = observacion;
    }

    public Date getFechaOperacion() {
        return fechaOperacion;
    }

    public void setFechaOperacion(Date fechaOperacion) {
        this.fechaOperacion = fechaOperacion;
    }

    public String getIpAcceso() {
        return ipAcceso;
    }

    public void setIpAcceso(String ipAcceso) {
        this.ipAcceso = ipAcceso;
    }

    public String getMacAcceso() {
        return macAcceso;
    }

    public void setMacAcceso(String macAcceso) {
        this.macAcceso = macAcceso;
    }

    public Integer getEstado() {
        return estado;
    }

    public void setEstado(Integer estado) {
        this.estado = estado;
    }

    public DetalleProcesoAprobacion getDetalleProcesoAprobacion() {
        return detalleProcesoAprobacion;
    }

    public void setDetalleProcesoAprobacion(DetalleProcesoAprobacion detalleProcesoAprobacion) {
        this.detalleProcesoAprobacion = detalleProcesoAprobacion;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (detalleAprobacionPlanillaPK != null ? detalleAprobacionPlanillaPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof DetalleAprobacionPlanilla)) {
            return false;
        }
        DetalleAprobacionPlanilla other = (DetalleAprobacionPlanilla) object;
        if ((this.detalleAprobacionPlanillaPK == null && other.detalleAprobacionPlanillaPK != null) || (this.detalleAprobacionPlanillaPK != null && !this.detalleAprobacionPlanillaPK.equals(other.detalleAprobacionPlanillaPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "tesoreria.ejb30.entity.DetalleAprobacionPlanilla[detalleAprobacionPlanillaPK=" + detalleAprobacionPlanillaPK + "]";
    }

}
